
#ifndef _SCENE_H_
#define _SCENE_H_

#include "engine.h"
#include "opengl/opengl_shader.h"
#include "entity/object3D.h"
#include "entity/camera.h"

namespace engine
{
    class Scene
    {
    public:
        typedef std::shared_ptr<Scene> ptr;

    public:
        Scene() {}
        ~Scene() {}

        virtual void render(double time) = 0;

        virtual void processInput(GLFWwindow *window) = 0;

    protected:
        void update();

    protected:
        Shader *shader;
        Camera *camera;
    };
}

#endif